/**
 * Li
 * [$$ description]
 * @type {[type]}
 *
 * (21 , 94)     // 定义一些变量和函数 jQuery = function(){}
 * (96 , 283)    // 给JQ对象，添加一些方法和属性
 * (285 , 347)   // extend : JQ的继承方法
 * (349 , 817)   // jQuery.extend() : 扩展一些工具方法
 * (877 , 2856)  // Sizzle : 复杂选择器的实现
 * (2880 , 3042) // callbacks : 回调对象 : 对函数的统一管理
 * (3043 , 3183) // Deferred : 延迟对象 : 对异步的统一管理
 *
 * (8826)        // window.jQuery = window.$ = jQuery;
  */
;(function(window) {
    var $$ = function() {
        return new $$.fn.init();
    };
    $$.sayHolle = function() {
        alert('Holle world');
    }
    window.$$ = $$;
})(window);

$$.sayHolle();

/**
 * 解决异步问题
 */
var dfd = $.Deferred();
setTimeout(function(){
    alert(1);
    dfd.resolve();
},1000);
dfd.done(function(){
    alert(2);
});
